/**
 * Created by qiang on 2017-05-02 .
 */

if (!HTMLCanvasElement.prototype.toBlob) {
  Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
    value: function (callback, type, quality) {
      
      var binStr = atob( this.toDataURL(type, quality).split(',')[1] ),
        len = binStr.length,
        arr = new Uint8Array(len);
      
      for (var i = 0; i < len; i++ ) {
        arr[i] = binStr.charCodeAt(i);
      }
      
      callback( new Blob( [arr], {type: type || 'image/png'} ) );
    }
  });
}


function errorHandler(e){
  var error = 'error: '+ e.message+'\n file: '+ e.filename+'\n line: '+ e.lineno;
  alert(error);
}
window.addEventListener("error", errorHandler, false);

$(function () {
  $(".mi-tag-bottom").hide();
  $("#image").hide();
	getWXConfig();
    common.YMCount();
})

var getWXConfig = function () {
	var getWXConfigCallBack = function (data) {
		wx.config({
			debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
			appId: data.appId, // 必填，公众号的唯一标识
			timestamp: parseInt(data.timeStamp), // 必填，生成签名的时间戳
			nonceStr: data.nonceStr, // 必填，生成签名的随机串
			signature: data.signature,// 必填，签名，见附录1
			jsApiList: ['chooseImage', 'uploadImage'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
		});

		wx.ready(function () {
      $(".loading-bg").hide();
      wx.chooseImage({
        count: 1, // 默认9
        sizeType: ['compressed'], // 可以指定是原图还是压缩图，默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
        success: function (res) {
          wxUploadImage(res.localIds[0]);
        }
      });
		})
	}
	service.getWXConfig({url: window.location.href}, getWXConfigCallBack)
}

var chooseImage = function () {
  wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['compressed'], // 可以指定是原图还是压缩图，默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
    success: function (res) {
      wxUploadImage(res.localIds[0]);
    }
  });
}

var wxUploadImage = function (localId) {
  $(".add-img").hide();
  wx.uploadImage({
    localId: localId, // 需要上传的图片的本地ID，由chooseImage接口获得
    isShowProgressTips: 1, // 默认为1，显示进度提示
    success: function (res) {
      var serverId = res.serverId; // 返回图片的服务器端ID
      getImageUrl(serverId);
    }
  });
}

var getImageUrl = function (serverId) {
  var getImageUrlCallBack = function (data) {
    $("#image").attr('src', data);
    $(".mi-tag-bottom").show();
    $("#image").show();
    $('#image').cropper({
      aspectRatio: 1 / 1,
      autoCropArea: 1,
      dragMode: 'move',
      restore: false,
      guides: false,
      cropBoxMovable: false,
      cropBoxResizable : false,
      crop: function(e) {
     // Output the result data for cropping image.
      //  console.log(e.x);
      //  console.log(e.y);
      //  console.log(e.width);
      //  console.log(e.height);
      //  console.log(e.rotate);
      //  console.log(e.scaleX);
      //  console.log(e.scaleY);
      }
    });
  };
  var options = {
    media_id: serverId
  };
  service.getImage(options, getImageUrlCallBack);
}

function dataURLtoBlob(dataurl) {
    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while(n--){
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new Blob([u8arr], {type:mime});
}

var cropImage = function () {
    var blob = dataURLtoBlob($('#image').cropper('getCroppedCanvas').toDataURL('image/jpeg'))
    var formData = new FormData();
    formData.append('HeadImgUrl', blob, "image.jpg");
    formData.append('DeleteFileArr', JSON.stringify([$("#image").attr('src')]));
    service.uploadHeadImage(formData, function (res) {
      // alert(JSON.stringify(res));
      history.go(-1);
    });
}